package com.software.abstractFactory;

import java.util.Scanner;

public class AbstratoryFactoryDemo {
    public static void main(String[] args) {
        // 生产要求是 1，生产一个圆 2,并用红色填充
//        AbstractFactory shape = FactoryProductor.getFactory("shape");
//        Shape circle = shape.getShape("circle");
//        circle.draw();
//        AbstractFactory color = FactoryProductor.getFactory("color");
//        Color red = color.getColor("red");
//        red.fill();
        //1,先选择形状工厂生产出一个形状  2，在提示选择什么颜色 然后进行填充 都是控制台输入控制的
        Scanner scanner = new Scanner(System.in);
        AbstractFactory shapeFactory = FactoryProductor.getFactory("shape");

        String str = "";
        while (!str.equals("exit")) {
            System.out.println("请输入要生产的形状");
            str = scanner.nextLine();
            Shape shape = shapeFactory.getShape(str);
            if (shape != null) {
                shape.draw();
                AbstractFactory colorFactory = FactoryProductor.getFactory("color");
                boolean isColor = false;
                while (!isColor) {
                    System.out.println("请输入要填充的颜色");
                    str = scanner.nextLine();
                    Color color = colorFactory.getColor(str);
                    if (color != null) {
                        color.fill();
                        isColor = true;
                    } else {
                        System.out.println("输入颜色我的工厂生产不了，我只能生产RED / GREEN / BLUE） 的重新输入");
                        isColor = false;
                    }
                }

            } else {
                System.out.println("输入形状我的工厂生产不了，我只能生产CIRCLE / RECTANGLE / SQUARE） 的重新输入");
            }

        }


    }
}
